OPC Studio components may, under certain circumstances, display a user interface "by itself", without you having to make a specific method call. Such unsolicited user interaction only happens when the current process is running in user interactive mode, as reported by the Environment.UserInteractive Property. In non-interactive mode, the components assume reasonable default user responses. In addition, you can turn off specific user interactions by setting corresponding parameters in the code.
Usually, these are notifications or confirmations related to conditions that cannot be anticipated upfront, such as the certificate exchange in the OPC UA connection process.
In OPC Data Client applications, the component controls the connections and disconnections automatically, and when subscriptions are in effect, also makes re-connections, you - as a developer - cannot generally predict when such user interaction may be needed. In OPC Wizard applications, the OPC UA clients that use your server are in control of connections and disconnections, and the user interaction associated with such connections can also happen at any time.
There are following situations that may trigger an unsolicited user interaction related to OPC Unified Architecture (OPC UA) operations:
For an OPC UA client, the "peer" is an OPC UA server. For an OPC UA server, the "peer" is an OPC UA client.
There is no unsolicited user interaction related to OPC Classic operations.
In OPC Data Client applications, the individual interaction types can be controlled as follows:
In OPC Wizard applications, the individual interaction types can be controlled as follows:
The way OPC Studio presents the unsolicited user interaction depends on the environment your application is running in. There is an interaction provider for each such supported environment. An application developed with OPC Studio interrogates the available interaction providers to see which one should perform the interaction, selects the appropriate interaction provider and then uses it to actually communicate with the user. Following interaction providers are available:
Each interaction provider (except for the Null Interaction Provider) can be turned on or off, and may have additional configurable parameters.
All unsolicited user interaction (with exception of rare messages and confirmations related to client application instance certificate checks) has a timeout associated with it, and a default user response is assumed should the user not respond in time. This means that under normal circumstances, the current activity cannot be blocked indefinitely if the user fails to respond. In fact, this behavior also guarantees that the activity will eventually proceed even if the Environment.UserInteractive Property incorrectly claimed that the process is running in user interactive mode. The timeout is configurable by the AcceptNotificationTimeout Property in the UAUserInteractionParameters Class. In order to obtain or modify this parameter, access the UserInteractionParameters Property of EngineParameters Property of EasyUAClient.SharedParameters Property.
When there is a problem with the license key, or when the trial license runtime expires. Instead, such problems are primarily reported as other errors, using the channels for the programming model used. For example, in Imperative Programming Model, the single-argument method throws an exception, a multiple-argument method returns the error in the Exception Property of the OperationResult Class, or with subscriptions, the error is reported in the Exception Property of the OperationEventArgs Class. It is up to the calling code to handle such situations.
In addition, in Windows Forms applications and certain other Windows desktop application, OPC Studio components display a notification in Windows system tray for certain license-related issues: